module ep4ce10f17c8n(

    input        sys_clk       ,
    input        sys_rst_n     ,
    
    //spi interface
    output       spi_cs        ,//SPI从机的片选信号，低电平有效。
    output       spi_clk       ,//主从机之间的数据同步时钟。
    output       spi_mosi      ,//数据引脚，主机输出，从机输入。
    input        spi_miso       //数据引脚，主机输入，从机输出。
);

//wire define
wire        spi_start  ;
wire [7:0 ] spi_cmd    ;
wire [23:0] spi_addr   ;
wire [7:0 ] spi_data   ;
wire        clk_100m   ;
wire        locked     ;
wire        stdone     ;
wire        idel_flag_r;
wire        w_data_req ;
wire        erro_flag  ;
wire[3:0 ]  cmd_cnt    ;

//*****************************************************
//**                    main code
//*****************************************************
pll_spi    u_pll_spi (
    .areset ( ~sys_rst_n ),
    .inclk0 ( sys_clk    ),
    .c0     ( clk_100m   ),
    .locked ( locked     )
    );

spi_drive u_spi_drive(
    .clk_100m          (clk_100m),
    .sys_rst_n           (sys_rst_n&&locked),
    .spi_start         (spi_start),
    .spi_cmd           (spi_cmd),
    .spi_addr          (24'h000000),
    .spi_data          (spi_data),
    .idel_flag_r       (idel_flag_r),
    .w_data_req        (w_data_req),
    .erro_flag         (erro_flag ),
    .cmd_cnt           (cmd_cnt),
    
    .spi_cs            (spi_cs),
    .spi_clk           (spi_clk),
    .spi_mosi          (spi_mosi),
    .spi_miso          (spi_miso)
);

flash_rw u_flash_rw(
    .sys_clk           (clk_100m),
    .sys_rst_n         (sys_rst_n&&locked),
    .idel_flag_r       (idel_flag_r),
    .spi_start         (spi_start),
    .spi_cmd           (spi_cmd),
    .cmd_cnt           (cmd_cnt),
    .w_data_req        (w_data_req),
    .spi_data          (spi_data)
);

endmodule